﻿using System;
using System.Windows;
using System.Windows.Input;

namespace MediaBrowser.CustomControls.MouseCursors
{
    public class CustomMouseCursors
    {
        public static Cursor AppStarting
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassWorking.ani", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor Arrow
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassArrow.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor ArrowCD
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassWorking.ani", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor Cross
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueGlassPrecision.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor Hand
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/Link.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor Help
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassHelp.ani", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor IBeam
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassTextSelect.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor No
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueGlassUnavailable.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor None { get { return Cursors.None; } }

        public static Cursor Pen
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueGlassPencil.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor ScrollAll
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassSizeAll.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor ScrollE { get { return Cursors.ScrollE; } }

        public static Cursor ScrollN { get { return Cursors.ScrollN; } }

        public static Cursor ScrollNE { get { return Cursors.ScrollNE; } }

        public static Cursor ScrollNS { get { return Cursors.ScrollNS; } }

        public static Cursor ScrollNW { get { return Cursors.ScrollNW; } }

        public static Cursor ScrollS { get { return Cursors.ScrollS; } }

        public static Cursor ScrollSE { get { return Cursors.ScrollSE; } }

        public static Cursor ScrollSW { get { return Cursors.ScrollSW; } }

        public static Cursor ScrollW { get { return Cursors.ScrollW; } }

        public static Cursor ScrollWE { get { return Cursors.ScrollWE; } }

        public static Cursor SizeAll
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassSizeAll.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor SizeNESW
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassSizeNESW.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor SizeNS
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassSizeNS.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor SizeNWSE
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassSizeNWSE.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor SizeWE
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassSizeWE.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor UpArrow
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassArrow.cur", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor Wait
        {
            get
            {
                Uri uri = new Uri("pack://application:,,,/MediaBrowser.CustomControls;Component/MouseCursors/Cursors/BlueglassBusy.ani", UriKind.RelativeOrAbsolute);
                return new Cursor(Application.GetResourceStream(uri).Stream);
            }
        }

        public static Cursor GetCursor(Cursor val)
        {
            Cursor result = CustomMouseCursors.Arrow;
            if (val == Cursors.AppStarting)
            {
                result = CustomMouseCursors.AppStarting;
            }
            else if (val == Cursors.Arrow)
            {
                result = CustomMouseCursors.Arrow;
            }
            else if (val == Cursors.ArrowCD)
            {
                result = CustomMouseCursors.ArrowCD;
            }
            else if (val == Cursors.Cross)
            {
                result = CustomMouseCursors.Cross;
            }
            else if (val == Cursors.Hand)
            {
                result = CustomMouseCursors.Hand;
            }
            else if (val == Cursors.Help)
            {
                result = CustomMouseCursors.Help;
            }
            else if (val == Cursors.IBeam)
            {
                result = CustomMouseCursors.IBeam;
            }
            else if (val == Cursors.No)
            {
                result = CustomMouseCursors.No;
            }
            else if (val == Cursors.None)
            {
                result = CustomMouseCursors.None;
            }
            else if (val == Cursors.Pen)
            {
                result = CustomMouseCursors.Pen;
            }
            else if (val == Cursors.ScrollAll)
            {
                result = CustomMouseCursors.ScrollAll;
            }
            else if (val == Cursors.ScrollE)
            {
                result = CustomMouseCursors.ScrollE;
            }
            else if (val == Cursors.ScrollN)
            {
                result = CustomMouseCursors.ScrollN;
            }
            else if (val == Cursors.ScrollNE)
            {
                result = CustomMouseCursors.ScrollNE;
            }
            else if (val == Cursors.ScrollNS)
            {
                result = CustomMouseCursors.ScrollNS;
            }
            else if (val == Cursors.ScrollNW)
            {
                result = CustomMouseCursors.ScrollNW;
            }
            else if (val == Cursors.ScrollS)
            {
                result = CustomMouseCursors.ScrollS;
            }
            else if (val == Cursors.ScrollSE)
            {
                result = CustomMouseCursors.ScrollSE;
            }
            else if (val == Cursors.ScrollSW)
            {
                result = CustomMouseCursors.ScrollSW;
            }
            else if (val == Cursors.ScrollW)
            {
                result = CustomMouseCursors.ScrollW;
            }
            else if (val == Cursors.ScrollWE)
            {
                result = CustomMouseCursors.ScrollWE;
            }
            else if (val == Cursors.SizeAll)
            {
                result = CustomMouseCursors.SizeAll;
            }
            else if (val == Cursors.SizeNESW)
            {
                result = CustomMouseCursors.SizeNESW;
            }
            else if (val == Cursors.SizeNS)
            {
                result = CustomMouseCursors.SizeNS;
            }
            else if (val == Cursors.SizeNWSE)
            {
                result = CustomMouseCursors.SizeNWSE;
            }
            else if (val == Cursors.SizeWE)
            {
                result = CustomMouseCursors.SizeWE;
            }
            else if (val == Cursors.UpArrow)
            {
                result = CustomMouseCursors.UpArrow;
            }
            else if (val == Cursors.Wait)
            {
                result = CustomMouseCursors.Wait;
            }
            return result;
        }
    }
}
